import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;  // (Date)

/**
 * La clase tiempo calcula y muestra un cronometro que va en descenso.
 * 
 * @author Programacion Orientada a Objetos(Jose de Jesus Cervantes Hernandez) 
 */
public class Time extends Actor
{
    /**
     * Variable para almacenar el tiempo inicial
     */
    Date ini;          
    
    /**
     * Variable para almacenar el tiempo actual.
     */
    Date end;             
    
    /**
     * Variable que indica cuanto tiempo hay disponible.
     */
    private int cuanto;   
    
    /**
     * Constructor para la clase Time
     */
    public Time()
    {
        cuanto = 150;
        ini = null;
        this.setImage(new GreenfootImage("Tiempo: "+cuanto+" ",20,java.awt.Color.BLUE,java.awt.Color.BLACK));
    }
    
    /**
     * Metodo para que el contador este actualizandose cada segundo
     */
    public void act() 
    {
        if(ini == null)
            this.start();
        this.disTimer();
    }    
    
    /**
     * Se encarga de comenzar el timer para tener
     * una referencia de tiempo inicial
     */
    public void start()
    {
        ini = new Date();
    }
    
    /**
     * Actualiza el timer cada segundo
     */
    public void disTimer()
    {
        end = new Date();
        this.setImage(new GreenfootImage(" Tiempo: "+String.valueOf(cuanto-(end.getTime() - ini.getTime())/1000)+" ",30,java.awt.Color.BLUE,java.awt.Color.BLACK));
    }
    
    /**
     * Le da 20 segundos mas al jugador cuando consigue un reloj
     */
    public void sumaTime()
    {
         cuanto+=20;    
    }
}
